package com.cyan.note.dto.manager.worker;

import lombok.Data;
import java.math.BigDecimal;
import java.util.List;

/**
 * 打手统计数据DTO
 * 
 * @author ZhangzhenYu
 * @since 2025-01-15
 */
@Data
public class WorkerStatsDTO {

    /**
     * 总打手数
     */
    private Integer totalWorkers;

    /**
     * 在线打手数
     */
    private Integer onlineWorkers;

    /**
     * 离线打手数
     */
    private Integer offlineWorkers;

    /**
     * 空闲打手数
     */
    private Integer idleWorkers;

    /**
     * 工作中打手数
     */
    private Integer workingWorkers;

    /**
     * 在线率
     */
    private BigDecimal onlineRate;

    /**
     * 平均评分
     */
    private BigDecimal averageRating;

    /**
     * 今日活跃打手数
     */
    private Integer todayActiveWorkers;

    /**
     * 本月新增打手数
     */
    private Integer monthlyNewWorkers;

    /**
     * 打手等级分布
     */
    private List<WorkerLevelStats> levelDistribution;

    /**
     * 打手状态分布
     */
    private List<WorkerStatusStats> statusDistribution;

    /**
     * 本月优秀打手
     */
    private List<TopWorkerStats> topWorkers;

    @Data
    public static class WorkerLevelStats {
        /**
         * 等级名称
         */
        private String level;

        /**
         * 等级显示名称
         */
        private String levelName;

        /**
         * 打手数量
         */
        private Integer count;

        /**
         * 占比
         */
        private BigDecimal percentage;
    }

    @Data
    public static class WorkerStatusStats {
        /**
         * 状态代码
         */
        private String status;

        /**
         * 状态显示名称
         */
        private String statusName;

        /**
         * 打手数量
         */
        private Integer count;

        /**
         * 占比
         */
        private BigDecimal percentage;
    }

    @Data
    public static class TopWorkerStats {
        /**
         * 打手ID
         */
        private Long workerId;

        /**
         * 打手姓名
         */
        private String workerName;

        /**
         * 打手头像
         */
        private String avatar;

        /**
         * 本月订单数
         */
        private Integer monthlyOrders;

        /**
         * 本月收入
         */
        private BigDecimal monthlyIncome;

        /**
         * 评分
         */
        private BigDecimal rating;

        /**
         * 排名
         */
        private Integer rank;
    }
}